package main

import (
	"flag"
	"fmt"
	"runtime"
	"time"

	"gitee.com/taotao_today/crontab/crontab/master"
)

// 配置文件
var confFile string

func initArgs() {
	// master -config crontab/master/cmd/master.json
	// master -h
	flag.StringVar(&confFile, "config", "crontab/master/cmd/master.json", "指定master配置文件")
	flag.Parse()
}

func initEnv() {
	// 设置线程数为CPU数
	runtime.GOMAXPROCS(runtime.NumCPU())
}

// 1. 搭建go项目框架、配置文件、命令行参数、线程配置
// 2. 给web后端提供http API, 用于管理job
// 3. 写一个web后端的前端页面, 实现前后端分离开发

func main() {
	// 初始化线程
	initEnv()
	// 命令行参数设置，用于配置配置文件路径，默认是: crontab/master/cmd/master.json
	initArgs()
	err := master.InitConfig(confFile)
	if err != nil {
		goto ERR
	}

	// 任务管理器
	err = master.InitJobMgr()
	if err != nil {
		goto ERR
	}
	// 初始化Api server
	err = master.InitApiServer()
	if err != nil {
		goto ERR
	}

	for {
		time.Sleep(time.Second)
	}
	// 异常退出
ERR:
	fmt.Println(err)
}
